package Modelo;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.WindowEvent;
import javax.swing.JOptionPane;

public class Autito  extends Movil  {

	private static final long serialVersionUID = 1L;
        public boolean carga,flag_auto, ignorar_teclas;
        private int contador;
        public Autito(Integer id0, Integer x0,Integer y0,Integer w0,Integer h0,Color c,Integer vida, Boolean estado, Escenario e){
            super(id0, x0,y0,h0,w0,c,vida,estado,e);
            carga=false; //comiezan descargados
            dx=4;
            dy=4;
            contador=0;
            ignorar_teclas = false;
        }

        /*Metodo para cargar autos*/
        public void setCarga(){

                carga=true;
                System.out.print("Autito"+this.id+"se carga");
      	}
        /*Metodo para descargar auto*/
        public void getCarga(){

                carga=false;
                System.out.print("Autito"+this.id+"se descarga");
      	}
        public int getContador(){

                return contador;
      	}

        public void setPunto(){
            while(contador<=10){
            contador++;
            break;
            }
            while(contador==10){
            this.finJuego();
            break;
            }
        }


        /*Metodo para impedir el paso entre objetos*/
        public void rebota() {

            moverse(k,c);
        }


        @Override
	public void dibujar(Graphics g){

                g.setColor(color);
                k=x;c=y;
                g.fillRect(x, y, ancho, alto);
      	}

        /*Metodos de colision*/
        @Override
        public void colision(Figuras figura) {
        }

	@Override
	public synchronized void colision(Autito a) {
            a.rebota();
	}

        @Override
        public void colision(Pared pared) {
        }

        @Override
    public synchronized void colision(Policia poli) {



        int xAux=poli.x;  //posiciones al chocar
        int yAux=poli.y;

        poli.x-=(poli.x-poli.xAnterior)*5;
        poli.y-=(poli.y-poli.yAnterior)*5;

        poli.xAnterior=xAux; //posiciones antes del choque
        poli.yAnterior=yAux;

        poli.dx = poli.dx*(-1);
        poli.dy = poli.dy*(-1);


        escenario.arbitro.CheckAll(this);

    }

    private void finJuego() {
         this.windowClosing(null);

        }
    public void windowClosing(WindowEvent e) {
        // throw new UnsupportedOperationException("Not supported yet.");
       int exit = JOptionPane.showConfirmDialog(escenario, "Ha ganado "+this.getID()+" Desea salir ?");
            if (exit == JOptionPane.YES_OPTION) {
                System.exit(0);

            }
    }
    }


